package com.zpark.evaluate;

import com.zpark.entity.EvaluateData;
import com.zpark.entity.EvaluateReport;
import com.zpark.entity.HistoryData;
import com.zpark.entity.RiskFactor;

/**
 * 评估抽象类
 * 这个类为七个评估模型提供抽象方法
 */
public abstract class Evaluate {

    //评估因子
    private RiskFactor riskFactor;

    //只提供带参数的构造方法
    public Evaluate(RiskFactor riskFactor) {
        this.riskFactor = riskFactor;
    }

    public RiskFactor getRiskFactor() {
        return riskFactor;
    }

    /**
     * 评估抽象方法
     * @param evaluateData 需要评估的数据
     * @param historyData 历史数据（历次登录成功留存下来的数据）
     * @param evaluateReport 评估报告
     * @param evaluateChain 评估链
     */
    public  abstract  void eval(EvaluateData evaluateData, HistoryData historyData, EvaluateReport evaluateReport, EvaluateChain evaluateChain);
}
